import Vue from 'vue'
import Vuex from 'vuex'
import { favlist,fav } from '../utils/api'
//导入日志插件
import createLogger from 'vuex/dist/logger'
//导入持久化插件
// import createPersistedState from "vuex-persistedstate";

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 用户信息
    // userinfo : {},

    // 收藏店铺列表
    collectList:localStorage.getItem('vuex') ? JSON.parse(localStorage.getItem('vuex')) : [],

    // 购物车列表
    shopCartList:[]
  },

  // 计算方法
  getters: {
    
  },
  // 同步方法
  mutations: {
     // 用户信息
    // userinfo(state,payload){
    //   state.userinfo = payload
    //   console.log(state.userinfo);
    //   console.log(payload);
    // },

    // 收藏店铺
    collection(state,payload){
      state.collectList.push(payload)
      // 手动存储vuex数据到本地存储
      localStorage.setItem("vuex", JSON.stringify(state.collectList))
    },
    // 取消收藏
    cancel(state,payload){
      var id = state.collectList.findIndex((item)=>{
        return item.mtWmPoiId == payload.mtWmPoiId
      })
      if( id != -1){
        state.collectList.splice(id,1)
      }
      // 手动存储vuex数据到本地存储
      localStorage.setItem("vuex", JSON.stringify(state.collectList))
    },
    //  收藏列表
    favlist(state,payload){
      state.collectList = payload
    },

    // 购物车列表
    shopcart(state,payload){
      state.shopCartList = payload
    }
  },
  // 异步方法
  actions: {
    //  收藏列表
    request_favlist( { commit}){
      var userid = JSON.parse(localStorage.getItem('userinfo')).id
      console.log(userid);
        favlist({userid}).then((res)=>{
          if( res.data.code == 200 ){
            commit('favlist',res.data.list)
          }
        })
    },
    //  收藏店铺
    requeset_fav( state, payload){
      var userid = JSON.parse(localStorage.getItem('userinfo')).id
      fav({userid,shopid:payload.mtWmPoiId}).then((res)=>{
        console.log(res);
        if(res.data.code==200){
            state.commit('collection',payload)
        }
      }).catch((e)=>{})
    },
    //  收藏列表
    request_shopcart( { commit}){
      var userid = JSON.parse(localStorage.getItem('userinfo')).id
      shopcart({userid}).then((res)=>{
          if( res.data.code == 200 ){
            commit('favlist',res.data.list)
          }
        })
    },
  },
  modules: {
  },
  //配合其他插件 管理vuex中state内部的数据
  // plugins:[ createLogger(), createPersistedState()]
  plugins:[ createLogger(),]
})
